package cn.trs.common.enums;

/**
 * 通用错误码枚举
 *
 * @author 王元晨
 */
public enum ErrorCodeEnum {
    // 系统错误
    SYSTEM_ERROR("-1", "Internal Server Error"),
    // 通用错误
    COMMON_ERROR("-2", "通用错误码"),
    // 频率控制
    FREQUENCY_LIMIT("-3", "请求太频繁了，请稍后再试哦~~"),
    // 分布式锁
    LOCK_LIMIT("-4", "请求太频繁了，请稍后再试哦~~"),
    // 参数缺失
    PARAM_FAILURE("601", "参数缺失"),
    // 参数类型错误
    PARAM_TYPE_FAILURE("602", "参数类型错误"),
    // 参数格式错误
    PARAM_FORMAT_FAILURE("603", "参数格式错误"),
    // 参数null的状态码
    ERROR_JSON("605", "json参数有误"),
    // 参数有值但无效
    INVALID_PARAMETER("606", "参数无效"),
    // 远程服务调用异常
    FEIGN_SERVER_ERROR("802", "远程服务调用异常！"),
    // 登陆失败
    LOGIN_FAIL("708", "手机号或验证码错误！"),
    // 检查token无效
    TOKEN_NOT_VALID("709", "请登录后再访问接口！"),
    // 连接超时
    TIMEOUT_FAILURE("999", "连接超时"),
    ;

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    ErrorCodeEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }

    private final String code;
    private final String message;

    public static String getCodeMessage(String code){
        for (ErrorCodeEnum errorCodeEnum : ErrorCodeEnum.values()) {
            if (code.equals(errorCodeEnum.getCode())) {
                return errorCodeEnum.getMessage();
            }
        }
        return null;
    }

}
